/**
 *  Copyright (C) 2012   The FreeCol-Android Team
 *
 *  This file is part of FreeCol-Android.
 *
 *  FreeCol-Android is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  FreeCol is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with FreeCol-Android.  If not, see <http://www.gnu.org/licenses/>.
 */

package org.freecolandroid.fragments;

import java.io.IOException;

import net.sf.freecol.client.control.ConnectController;
import net.sf.freecol.common.io.FreeColTcFile;
import net.sf.freecol.common.model.NationOptions.Advantages;
import net.sf.freecol.common.model.Specification;

import org.freecolandroid.R;

import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Spinner;


public class NewGameFragment extends FreeColFragment {
	
	private Specification specification;

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		return inflater.inflate(R.layout.frag_new_game, container, false);
	}

	public void setSpecification(Specification specification) {
		if (specification == null) {
            FreeColTcFile tcData;
			try {
				tcData = new FreeColTcFile("classic");
				specification = tcData.getSpecification();
			} catch (IOException e) {
				Log.w(getTag(), e);
			}
        }
		this.specification = specification;
	}
	
	@Override
	public void onActivityCreated(Bundle savedInstanceState) {
		super.onActivityCreated(savedInstanceState);
		
		
		
		final Spinner spinner = (Spinner) getView().findViewById(R.id.difficulty);
		
		Button btn = (Button) getView().findViewById(R.id.ok);
		btn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				int level = spinner.getSelectedItemPosition();
				startGame(level);
			}
		});
	}
	
	private void startGame(final int difficulityLevel) {
		new Thread(new Runnable() {
			
			@Override
			public void run() {
				ConnectController connectController = mClient.getConnectController();
				specification.applyDifficultyLevel(difficulityLevel);
				connectController.startSingleplayerGame(specification, "Player Name", Advantages.FIXED);
			}
			
		}).start();
	}

}
